Skip to content

update x509-limbo to latest, fix empty name constraint seq handling - #535

Merged
cpu merged 2 commits into
mainfrom
ci/x509-limbo-update
Sep 2, 2026
Merged

update x509-limbo to latest, fix empty name constraint seq handling#535
cpu merged 2 commits into
mainfrom
ci/x509-limbo-update

Conversation

@cpu

@cpu cpu commented Sep 2, 2026

Copy link
Copy Markdown
Member

Updates x509-limbo to latest. Notably this adds a testcase (C2SP/x509-limbo#658) for an empty permittedSubtrees sequence (rfc5280::nc::permitted-empty-sequence-excluded-nonempty) that webpki previously accepted.

In a subsequent commit the behavior is fixed so that we reject this new case as expected (and the related webpki::nc::intermediate-permitted-excluded-subtrees-both-null and webpki::nc::intermediate-permitted-excluded-subtrees-both-empty-sequences cases we had pre-existing exceptions for). I think is pretty straight forward spec compliance and since NCs are rare in practice should have no meaningful user impact.

This also checks off one of the #70 entries, "RFC5280 s4.2.1.10 'Conforming CAs MUST NOT issue certificates where name constraints is an empty sequence.'".

cpu added 2 commits September 2, 2026 10:59
This brings in new tests for empty permittedSubtrees name constraints.
The non-empty control passes as expected, but webpki treats an empty
permittedSubtrees sequence as absent. Add the invalid empty case to
exceptions.
RFC 5280 requires NameConstraints to contain at least one of
permittedSubtrees or excludedSubtrees. Both fields use GeneralSubtrees,
which is defined as a sequence with one or more entries. A present but
empty field is therefore invalid.

Reject these encodings as malformed name constraints. This allows the
x509-limbo cases for an empty extension, two empty subtree fields, and
an empty permittedSubtrees alongside excludedSubtrees to pass without
exceptions.
@cpu cpu self-assigned this Sep 2, 2026
@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.63%. Comparing base (ebbcd73) to head (3e49507).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #535   +/-   ##
=======================================
  Coverage   97.63%   97.63%           
=======================================
  Files          20       20           
  Lines        4099     4106    +7     
=======================================
+ Hits         4002     4009    +7     
  Misses         97       97           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@djc

djc commented Sep 2, 2026

Copy link
Copy Markdown
Member

Nice!

@cpu
cpu added this pull request to the merge queue Sep 2, 2026
@cpu cpu mentioned this pull request Sep 2, 2026
27 tasks
Merged via the queue into main with commit 822281b Sep 2, 2026
50 checks passed
@cpu
cpu deleted the ci/x509-limbo-update branch September 2, 2026 15:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants